home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
PROGMISC
/
FPCHELP.LZH
/
DEBUG.HLP
< prev
next >
Wrap
Text File
|
1988-04-03
|
5KB
|
121 lines
\ DEBUG.HLP A high level debugger Enhancements by Tom Zimmer
\ The debugger is designed to let the user single step the
\ execution of a high level definition. To invoke the
\ debugger, type DEBUG XXX where XXX is the name of the
\ word you wish to trace. When XXX executes, you will get
\ a single step trace showing you the word within XXX that
\ is about to execute, and the contents of the parameter
\ stack. This debugger works by patching the NEXT routine,
\ so it is highly machine and implementation dependent.
'DEBUG Code field for high level trace
<IP Lower limit of IP
IP> Upper limit of IP
CNT How many times thru debug next
UNBUG ( -- )
Remove the debug point currently in place.
DSTK ( --- a1 )
A 100 byte deep stack used for nesting Colon definitions.
SLOWLY ( --- a1 )
Are we slowly stepping through the definition one step
at a time.
DCNT ( --- a1 )
The depth of the nesting stack.
SFLG ( --- a1 )
Slow flag ??
'DOCOL ( --- a1 )
Address of DoColon.
'UDEFER ( --- a1 )
Address of DoUser.
'DEFER ( --- a1 )
Address of DoDefer.
D.ID ( -- )
The debugger ID.
(DBG) ( CFA -- )
Sets up a Colon definition for debugging. Sets various
parameters.
DSTK0 ( --- )
Reset the Colon definition nest stack.
>DS ( n1 --- )
Push value n1 onto the DST stack.
DS> ( --- n1 )
Pop a value off of the DST stack.
>DSTK ( A1 --- )
Conditionally nest into definition a1, if the definition
is a Colon def, a User def, or a Defered word.
?DST> ( A1- F1 )
Conditionally un-nest the current definition, and pop up to
the previous level.
GET-COMMAND ( --- c1 )
Get a key from the keyboard, and process it. Can allow
entry of Forth commands, it the F key is pressed.
TRACE ( Ip --- )
Perform one step through the debugger, get a comment from
the user, and process it. May allow entry of Forth commands,
Nesting, Un-nesting, Quitting, ect. See DEBUG for further
information.
ADEBUG ( A1 --- )
Set the CFA=a1 as the current word to be debugged.
DEBUG ( | name --- )
Look up the word following DEBUG, and make it the next word
to be debugged.
The commands are available while debugging, as follows;
C-cont Continuous, scrolls through words as they
are executed, stop by pressing <return>.
F-forth Allow entry of Forth commands, until a <return>
is pressed on an empty command line.
P.S. don't make any typing errors or you will
fall out of the debugger.
Q-quit Quit the debugger, and unpatch the debug word.
Returns to Forth.
N-nest Nest into the current definition the debugger
is sitting on, if it is a ":" definition, else
issue an error message but don't abort.
U-unnest Unnest from the current word being debugged, the
debugger will re-enter when the word finishes
executing, and pops up one level to the word that
called it. You cannot Unnest without Nesting.
Z-zip Zip through definitions, like C-cont, but only
zips through code definitions, still pauses on
":" definitions.
X-source OFF Turn OFF the display of source text at the top
of the screen. The words SRCOFF and SRCON will
also do this.
#DEBUG ( n1 | name --- )
Set the name as the current word to be debugged, with value
n1 as the number of times next should be executed before
debugging starts. Yes I know this is obscure, but it can
be useful at times.
DEBUG> ( --- )
Set the debugger to start working immediately on the following
word when it is encountered in the current colon definition.
DBG ( | name --- )
Start debugging the word following DBG immediately.
See also DEBUG.